#include<iostream>
using namespace std;
#include<pthread.h>
#include<unistd.h>
#include<string>
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

//线程对于进程中的函数资源是共享的
void fun(){
    cout<<"我是一个函数，是共享的"<<endl;
}

//实现一个函数，将tid都转为16进制显示
string get_tid(const pthread_t& tid){
    char buffer[128];
    snprintf(buffer,sizeof buffer,"0x%x",tid);
    return buffer;
}

void* start_routine(void* args){
    const char* name = (const char*)args;
    //string* name = (string*)args;
    while(true){
        cout<<"我是新线程，我的名称是："<<name<<"tid:"<<get_tid(pthread_self())<<endl;
        sleep(1);

    }
}

//创建线程的基本使用
int main(){
    pthread_t tid;
    int n = pthread_create(&tid,nullptr,start_routine,(void*)"thread one");
    assert(n == 0);
    (void)n;



    while(true){
        cout<<"我是主线程,新线程返回的tid为:"<<get_tid(tid)<<endl;
        sleep(1);
    }


    return 0;
}